Characterization of interactions’ persistence in time-varying networks

Many complex networked systems exhibit volatile dynamic interactions among their vertices, whose order and persistence reverberate on the outcome of dynamical processes taking place on them. To quantify and characterize the similarity of the snapshots of a time-varying network—a proxy for the persistence,—we present a study on the persistence of the interactions based on a descriptor named temporality. We use the average value of the temporality, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\overline{\mathcal {T}}$$\end{document}T¯, to assess how “special” is a given time-varying network within the configuration space of ordered sequences of snapshots. We analyse the temporality of several empirical networks and find that empirical sequences are much more similar than their randomized counterparts. We study also the effects on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\overline{\mathcal {T}}$$\end{document}T¯ induced by the (time) resolution at which interactions take place.

Over the last decades, complex networks have been used successfully to study a wide range of complex systems: from biological to technological systems, from social to economical ones just to cite a few 1,2 . Nevertheless, the evolving nature of many complex systems at timescales of specific studies still requires of quantification tools [3][4][5] .
The evolution of interactions between agents in complex systems over time does not only affect the structural properties of networked systems 6 , but also the dynamics taking place on them. Indeed, it has been found that time-varying interactions change the behaviour of dynamical processes like: epidemic spreading 7-9 , diffusion 10 , synchronization [11][12][13] , pattern formation 14 , and evolutionary game theory 15 . In particular, the speed of the variation of the interactions plays a pivotal role on the outcome of the dynamics 16 . In some cases, the time-scales at which the interactions and the dynamics evolve are distinct 17 , allowing the system to be studied under either the quenched (i.e., static) approximation 18,19 or the annealed one 20,21 . The former approach is more suitable when the dynamics evolves much faster than the network's structure (which can be thought as if it is static), whereas the latter approach (which leverages a well-mixing approach) is more appropriate in the opposite scenario, since it is equivalent to the case where every individual contacts a sufficient number of individuals to have information on the overall system state. More often, the two time-scales are not distinguishable [22][23][24] , thus requiring more sophisticated techniques to study first, and understand then, the phenomenology observed.
A key feature of the evolution of interactions is their degree of persistence (particularly at a short-range in time). It is known that the persistence has effects on different types of dynamics such as evolutionary game theory 25,26 , synchronization 27 , and diffusive processes 8,28 , as well as on the properties of communication patterns among people 29 . Beyond that, recent studies have highlighted a clear relationship between the interactions' persistence and the differentiation, in networks, between the main backbone of the interactions and the noise-or spurious interactions,-that simply "switch on and off " 30,31 .
Thus, the intricate interplay between the evolution of the interactions and the dynamics taking place on a complex network calls for a deeper understanding of time-varying interactions' characteristics, with special attention on their persistence. One way to achieve such a goal would by answering to the question: How special/rare is the observed temporal order of the interactions occurring in a time-varying network? To solve this conundrum, we propose to set: (i) A null hypothesis/model to be used for generating a benchmark interactions' order. (ii) A meaningful property capturing the features of the temporal order of the interactions of a time-varying network.
Concerning the former, we assume that the underlying and invariant feature of a time-varying network is the set of interactions taking place at a given instant i.e., the set of N s snapshot graphs (see Fig. 1a) constituting the values of temporality (see "Methods") of all the networks considered in our study. More specifically, for each network we report the average value of the temporality computed: (i) numerically from the data ( T -Empirical); (ii) analytically from the data via Eq. (6) ( T th -Theory); (iii) sampling numerically sequences extracted from the configuration space ( T rand ,-Random) (in the text we use T rand to refer to the median of the distribution); (iv) extracting the sequences corresponding to the maximum and minimum values ( T min ,T max ) using the optimization algorithm described in the "Methods".
First of all, we want to remark that for almost all the networks considered in this study, the theoretical estimation T th is in good agreement with T rand . Such an agreement means that the shuffling process underlying the computation T rand fulfils the hypothesis used to derive T th and that, more in general, we can use T th as a proxy for the estimation of T rand .
Also, Fig. 2 shows that most of the values of the empiric T fall within the [ 0.2, 0.6 ] interval, and that empiric sequences have more persistent interactions than the corresponding theoretical estimation (which also represents the randomized counterparts) i.e., T ≤ T th . The relative position of T and T th , d th = T − T th , provides us with a valuable information. Such a quantity, in fact, determines whether the persistence, if any, stems either from the existence of a sort of permanent set/core of interactions (i.e., d th ∼ 0 ) or, alternatively, from the existence of short range correlations between temporal-adjacent snapshots which-in turn,-controls the lifespan of the interactions (i.e., d th > 0 ). Eyeballing at the diagram, we observe that in all the networks (except for the Italian trade ones) T ≪ T th , implying that the origin of the persistence in the interactions between adjacent snapshots is due to the existence of short-range correlations between temporal-adjacent snapshots.
Another useful indicator is the distance d min = T − T min . We observe that for the networks of High School, SFHH Conference, Trade-carpets Turkey, Brain, and US domestic flights d min ≃ ε with ε → 0 . Such a trend hints at the existence of some kind of intrinsic optimization behind these networks' organization. For E-mails, instead, the situation is quite the opposite with a system that is almost the least persistent possible. For the Baboons, Malawi, Hospital, and Italian trade networks we observe bigger values of d min , implying that although the similarities between adjacent snapshots are non negligible (compared to T rand ), they are stronger with snapshots distant in time (without having information on how far, though).
Finally, we observe that-for most networks,-the theoretical estimation is close to the T max . Such a proximity implies that each snapshot is as different as possible with the majority of the other snapshots, except for those which are adjacent in the original sequence. In the three trade networks and that of US domestic flights the theoretical estimation lays more far away from the maximum. One possible explanation of such a feature could be related with the fact that these networks have the smallest number of snapshots, N s (see Table 1).
Apart from the characterisation of empirical networks, we have computed these metrics for synthetic timevarying networks for which the edges' persistence and the origin of such a persistence can be tuned. In Supplementary Note S3 of the SM, we present different methods for the generation of synthetic datasets in which the persistence of edges is due to the existence of a stable (time-invariant) core of interactions or, alternatively, to For each dataset, we display the empirical value of T , its theoretical estimation, the distribution (violin plot) of the temporality of randomly shuffled sequences of snapshots, and its maximum and minimum possible values ( T max , T min ). The vertical dashed lines at T = 0.0 and T = 1.0 highlight the temporality's theoretical boundaries. To compute the violin plots, we generate 5 × 10 6 randomly shuffled sequences. Effects of changing the time resolution. After characterizing the persistence of the interactions, and estimating how special its value is compared with some null hypothesis, we study what are the effects of changing the time resolution on the phenomenology observed. For this reason, we perform a coarse-graining (i.e., aggregation as described in the "Methods") and compute T as a function of the size of the aggregation window, �τ . One of the goals of studying the aggregation process is to estimate the level of coarse-graining (i.e., the size of the aggregation window) at which the empirical sequence's order is statistically equivalent to the random one. Said in other terms, we seek to find the point at which the correlations between adjacent snapshots do not play any role for the persistence of the interactions. Figure 3 portrays the behaviour of T as a function of the aggregation's level, �τ , for six networks whose behaviours encompass the whole spectrum of the phenomenology observed (see Supplementary Fig. S3 in Supplementary Note S5 for the same picture displaying the whole set of datasets considered in our study). For each network, we display the value of T of the empiric sequence, the mean (and standard deviation) of the random sampling of the configuration space, and the maximum and minimum values. We decided to not display the theoretical estimation too, since its estimation's accuracy depends on N s which, in turn, decreases with the coarsegraining (at the coarsest level N s = 2 ). Finally, to enable the comparison between distinct networks at the same aggregation level, we have to replace �τ with its rescaled counterpart �τ ⋆ = �τ N s = n t N s . Overall, we observe the following behaviours: Baboons: As we aggregate together the snapshots, we observe a rise and fall of the empiric T and T min , with a maximum located around �τ ⋆ ∼ 0.001 and corresponding to the resolution at which the snapshots are the least similar to each other. As for the non-aggregated data, the empiric temporality is closer to the minimum than the maximum with the random displaying the opposite feature, instead. The relative distance between the random/empiric temporality and the extreme values decreases as we aggregate more, with the four curves merging together around �τ ⋆ ∼ 0.15 . After that, T = 0 as the network becomes complete/fully connected. Malawi: Aggregating the snapshots produces oscillations on the empiric T with the global maximum located around �τ ⋆ ∼ 0.015 . Moreover, we notice that the empiric and random values of T remain always close to T min and T max , respectively. The behaviour of the empiric and random T suggest that long and short range correlations between snapshots are nearly the same. It is worth mentioning that also the E-mails network displays a similar behaviour [see Supplementary Fig. S3 of the Supplementary Materials (SM)]. High School: We observe an almost perfect overlap between the empiric temporality and the minimum one, and between the random and the maximum one across the whole �τ ⋆ 's range. As for Baboons, the empiric temporality has a maximum for �τ ⋆ ∼ 0.02 and the four curves merge together around �τ ⋆ ∼ 0.3 . The SFHH Conference, Hospital, and Brain data display a similar behaviour (see Supplementary Fig. S3 of www.nature.com/scientificreports/ the SM). Trade-carpets Turkey: As for the previous case, the empiric and minimum temporality curves overlap almost perfectly across the whole �τ ⋆ 's range. However, the mean value of T rand lays more or less in the middle between T max and T min . Also, the value of T rand it not affected too much by the temporal resolution at which we study the system. Finally, the curves overlap with each other only at �τ ⋆ ≃ 0.5 . Trade-guns Italy: We observe a monotonous decrease of T for all indicators. Moreover, the empiric and mean value of T rand are very similar for almost the whole range of �τ ⋆ values, implying that the phenomenology observed for unaggregated data is not affected by the coarse graining. US domestic flights: We observe a behaviour similar to the Turkish trade dataset one, albeit in this case the temporality is monotonically increasing with �τ ⋆ . Such a behaviour denotes that the snapshots get less similar as we aggregate them. Furthermore, it is worth mentioning that for every dataset all the temporality values must coincide for �τ ⋆ = 0.5 (i.e., when the sequence is made only by two snapshots). Such a phenomenon, stems from the fact that there are only two possible snapshots' orders which correspond to the same temporality. Apart from that, one might expect that the value of T becomes smaller for higher values of �τ ⋆ as the snapshot networks becomes more akin to complete networks. However, this is not the case and T at �τ ⋆ = 0.5 falls within the whole range of possible values with T ≃ 1 for SFHH Conference and T = 0 for Baboons, instead (see Supplementary Fig. S3 of the SM). Finally, one feature observed in all datasets is that the distance between T and T rand decreases with �τ ⋆ and, eventually, goes to zero for �τ ⋆ = 0.5 . This phenomenon indicates, according to the analysis performed on the characterisation of non-aggregated sequences, that as the aggregation window increases, a core of fixed interactions emerges.

Discussion and conclusion
The static network paradigm is short to fully mimic the rich phenomenology displayed by dynamics taking place in those systems whose interactions evolve in time. Using a time-varying network paradigm allows to overcome such limitations and, in turns, to attain a better description of the interplay between dynamics and the persistence of evolving interactions 8,16 .
In this work, we used a metric to gauge the interactions' persistence named temporality 26 , and proposed an approach based on statistical physics to characterise the features of several empirical time-varying networks. By comparing the values of the average temporality, T , with its counterpart obtained from a random sampling of the configuration space, we assess how "special" the empirical order of snapshots is. Remarkably, we have found that the empiric interactions tend to be more persistent than in a random sequence of snapshots, and that some systems follow some kind of optimisation principle behind the arrangement of their snapshots. Besides, we have studied also the effects of time-resolution-i.e., coarse-graining-�τ on the temporality and the evolution of the hierarchy between its values computed for empiric, random, and limit ( T max , T min ) sequences. We have observed how systems belonging to the same category (e.g., face-to-face interactions) display distinct behaviours as we reduce the time resolution. According to the formalism of statistical physics, such an approach could be extended from the canonical formulation-in which the temporality (akin to the energy) is not fixed, but the number of pairs of snapshots (a proxy for the number of particles) is,-to the grand canonical formulation; thus allowing for the characterisation of the datasets with respect to a configurations' space in which the number of snapshots, N s , varies 35 .
The comparison of the empiric value of T and the mean of the distribution of temporality obtained from the random sampling of the configuration space, T rand , provides us with a valuable information about the origin of the interactions' persistence. In particular, we can ask ourselves whether the latter is due either to the existence of intrinsic (temporal) correlations between adjacent snapshots (i.e., memory) 36 , or to the presence of a set of persistent interactions whose existence is not affected by the temporal order of the snapshots. Two examples of these extreme configurations are the Italian trade datasets and the Brain one. Both exhibit a low value of T implying the persistence of the interactions between adjacent snapshots. However, trade datasets display also low values of T rand , whereas Brain has T rand ∼ 1 . Such a difference highlights the existence of a stable, persistent, set of interactions for the former networks, whereas in the latter network short-range memory prevails.
Finally, the methodology presented in this work has some technical-and conceptual,-limitations which could become the subject of further studies. For instance, one could generalise the estimation of T to account for the existence of correlations in the probability that the same edge exists in adjacent snapshots (which is one of the hallmarks of real time-varying networks) 3,36,37 . Another possibility is to leverage the information carried by the set of each link's local values of temporality. Among the potential extensions, one is to explore the interplay between the edges belonging to the time-varying backbone 30,38 and those contributing to the temporality observed in empirical systems. Studying the evolution of topological descriptors could help to grasp the behaviour of the temporality when one changes the size of the aggregation window (e.g., to find a "characteristic" timescale). Finally, the approach presented in this work could be used as a basis for the design of a method (akin to a configuration model 39,40 ) to generate time-varying networks with a given value of average temporality, and use it to test the role of persistent interactions on dynamical processes in a more controlled way.

Methods
A time-varying network G(N , E(t)) with N ≡ N vertices (or nodes) is defined as a set of interaction's triples e ≡ (i, j, t) ∈ E(t) where i, j ∈ {1, . . . , N} are the indices of the interacting vertices, and t denotes the time at which such an interaction occurs (we are assuming that the set of vertices, N , does not change over time). Timevarying networks can be thought also as a sequence of N s graphs (snapshots), G(t) ≡ G(N , E t ) , each made only by those interactions occurring at the same, discrete, timestep t 3,5 . In this section, first we introduce the concept of temporality T and how to estimate its average value, T , over the sequence G(t). Then, we describe how we www.nature.com/scientificreports/ merge together adjacent snapshots, shuffle the elements of G(t), as well as find the sequences G min (t) and G max (t) corresponding to the maximum and minimum values of T within the configuration space.
Temporality. Given a pair of snapshots graphs G m , G n ∈ G(t) (with m, n ∈ {1, . . . , N s } ), we define its temporality, T m,n , as: where a i,j (m) is an element of the adjacency matrix A m of the graph G m 41 . In particular, a i,j (m) is equal to one if vertices i and j are connected in graph G m , and is equal to zero otherwise. Equation (1) quantifies nothing else than the ratio between the number of distinct edges of G m and G n (i.e., those existing in one snapshot but not in the other), divided by the number of common and non-common edges. We can rewrite Eq. (1) in terms of the set of edges E as: where m,n is the size of the union of the edges' sets of graphs G m and G n (i.e., m,n ≡ E m ∪ E n ), whereas m,n is the size of the intersection of those sets, (i.e., m,n ≡ E m ∩ E n ). We can use the definition of temporality to gauge the volatility of the interactions of a time-varying network. To this aim, we define the average value of the temporality, T , for the whole time-varying network, G(t) (i.e., the whole set of snapshots), as follows: where m, m + 1 ∈ {1, . . . , N s − 1} denote the indices of two temporal-adjacent snapshots of the time-varying network G(t). According to the above definition, the temporality values span from 0 for networks having always the same edges, to 1 for completely different networks.
It is possible to estimate analytically T by assuming that (i) the microscopic process governing the existence of an interaction between two vertices at time t is independent on both the existence of other interactions at the same time, as well as on the occurrence of such an interaction in the past. (ii) The microscopic process governing the existence of an interaction does not change over time. (iii) The network has a constant size (i.e., N does not vary over time).
Following these assumptions, the average number of interactions (edges) in a snapshot of G(t), L , can be expressed as: where x ij is the probability that an edge between nodes i and j exists in any of the snapshots, and x ij is the average of such a probability over all the N(N−1) 2 possible edges. By leveraging the independence of interactions taking place at different snapshots, we can express the average number of edges belonging to two time adjacent snapshots (i.e., to the intersection of their edges' sets), |∩| , as: where x ij ∈ ∩ is the probability that the edge e(i, j) belongs to the intersection of the edges' sets of all the snapshots which, according to the independence of the probabilities postulated above, is equal to the product of the individual probabilities x ij .
Finally, as the microscopic process governing the existence of the interactions does not change over time (i.e., it is independent of t), we can rewrite Eq. (3) in terms of Eqs. (4) and (5), yielding: Hence, the theoretical estimation of T can be written just in terms of x ij . However, we want to stress that the approximation is valid only if both the variance of L and |∩| , as well as the covariance between the same quantities (and its higher order moments), are both negligible. For more details, see Supplementary Note S1 of the SM. Hence, to estimate T of an empirical network we just have to estimate the probability of appearance of each possible edge. Such a probability can be computed directly from the data as: where N s (i, j) is the number of snapshots in which the edge e(i, j) exists. Ensuring a correct interpretation of these results entails some caveats. For instance, the assumption of the interactions' statistical independence between  www.nature.com/scientificreports/ snapshots is, in general, not true for empirical systems. Such an issue exists when the system possesses some sort of memory (even just at short range) 36 . Nonetheless, as we will see, for uncorrelated sequences our theoretical framework estimates quite well the values of T . One potential extension of our framework (see Supplementary Note S2 of the SM) is to compute x ij using the so-called activity driven model: a popular model used to generate time-varying networks whose structure resembles those of the empirical ones 42 .
Aggregation, shuffling, and finding extreme values of temporality. In the following, we describe how given a sequence of snapshots, G(t), we aggregate, shuffle, and re-order it. Before describing these processes, it is worth mentioning that we perform some pre-processing on the empirical sequences. Specifically, for each dataset we remove those snapshots corresponding to empty graphs (e.g., night recordings of face-to-face interactions). Such operation is justified by the fact that empty graphs do not contribute to the temporality. Pruning inactivity periods from the data leads to a re-definition of the concept of time itself, converting the variable t from a time into a descriptor of the position of the snapshot along the sequence.
Aggregation. One important aspect of the characterization of time-varying networks is the resolution at which we study them 43 . Given a sequence of snapshots G(t), we can convert it into a new sequence G ′ (t) by aggregating its elements into groups of size �τ = nt with n ∈ N (i.e., we create its time-wise coarse graining). There are several ways of generating G ′ (t) 5 . Here, we consider an aggregation approach analogous to that used by Tang et al. 43 consisting in creating a projection network corresponding to the union of the edges' sets of the snapshots' group of size �τ (see Fig. 4). According to such a projection method, given a sequence of snapshots G(t) and a temporal resolution �τ , the resulting aggregated sequence G ′ (t) will be made of N s �τ snapshots (chunks). If N s is not an integer multiple of �τ , we apply periodic boundary conditions to the sequence and "complete" the last chunk of snapshots by adding those located at the beginning of the sequence (see middle row of Fig. 4). That said, it is worth stressing that distinct values of n (or, equivalently, �τ ) may lead to aggregated sequences with the same number of snapshots (chunks). In such a case, we keep only the values of n minimizing the number of snapshots needed to complete the last chunk.
Shuffling. One way to get rid of the correlations of a time series is to shuffle its elements. Similarly, we can get rid of the correlations existing between adjacent snapshots of the sequence G(t) by randomly shuffling their positions, giving rise to a new sequence G ′ (t) . The snapshots' random arrangement is nothing else than the generation process laying behind our configuration space, as explained in the "Introduction". Given a sequence of graphs G(t) with N s snapshots, it is-in general-computationally unfeasible to estimate exactly descriptors like the average or the standard deviation of an indicator (e.g., of T ) via exploring the whole configuration space, as its size scales with N s ! . For this reason, we compute these descriptors by sampling the configuration space generating a computationally-feasible number of realizations ( 5 × 10 6 ) of the random reshuffling process.
Finally, when studying the effects of time resolution (i.e., aggregation), we aggregate the sequence first and perform the reshuffling then, thus exploring the configuration space of the aggregated sequences. snapshots' pairs can be thought as the distance between vertices. Therefore, the aforementioned optimization problem consists in finding the open chain (i.e., snapshots' sequence) maximizing-or minimizing,-its total length (a proxy for the average temporality). However, the solution of such an optimization problem is NP hard. To overcome such a limitation, we use a heuristic algorithm based on the Kruskal's algorithm (used to extract the minimum spanning tree of a graph) 45 , allowing us to obtain an approximate solution for our problem.
Given the set of snapshots, G ≡ {G i } with G i ∈ G(t) ∀ i = {1, . . . , N s } , our heuristic algorithm works as follows: 1. Compute using Eq. (2) the elements of the set T ≡ T m,n N s m,n=1 ∀ m, n ∈ {1, . . . , N s }, m � = n ; and store its values. Then, sort the elements of set T in ascending (or descending) order. 2. For each T m,n ∈ T , we add the corresponding edge (G m , G n ) if and only if G m and G n are either both isolated vertices (graphs), or members of distinct chains and each vertex is connected with at most another vertex. 3. Repeat the above operation until the system is made by a single chain with N s − 1 edges.
Inverting the sorting order allows to determine either the snapshots' sequence G min (t) corresponding to T min , or the sequence G max (t) corresponding to T max . As mentioned previously, the non-Markovian nature of the algorithm leaves room to the chance that different choices, locally not optimal, could lead to a better final outcome (i.e., the solution found is a local optimum, but not necessarily a global one). One possible workaround is to add the edge (G m , G n ) with a probability computed using a simulated annealing technique 46 . Finally, we would like to mention that the above algorithm could be modified to reduce the computation time.
Data. We consider eleven time-varying networks grouped in the following categories: Face-to-face Five networks obtained from the Sociopatterns' repository 47 Specifically: Baboons The interactions occurring among a group of Guinea baboons living in an enclosure of a Primate Center in France recorded between June 13th and July 10th of 2019 48 . Note: the great number of snapshots ( ∼ 40, 000 ) of the dataset make unfeasible the sampling and the optimization over the configuration space. For this reason, we need to make a 2-snapshots aggregation even for the unaggregated characterization. Malawi Observational contact data collected for 86 individuals living in a village in rural Malawi 49 . Note: the great number of snapshots ( ∼ 40, 000 ) of the datasets make infeasible the sampling and the optimization over the configuration space. For this reason, we need to make a 2-snapshots aggregation even for the unaggregated characterization. Table 1. Main characteristics of the datasets considered. For each network, we report the number of nodes, N, the number of snapshots N s , the temporal resolution, t , the number of distinct interactions in the aggregated network, K TOT , the average temporality, T , and the edges' density average over the snapshots' set, ρ . Finally, we report the data's bibliographic source. Trade Three star networks describing the export relationships over a specific good (commodity) occurring between one country and all the other countries in the world, extracted from the UN-COMMTRADE database 53 (see Supplementary Note S4 of the SM for the details). Specifically: Trade-carpets Turkey Exports of "carpets, carpeting and rugs, knotted" taking place between years 1962 and 2020.
Trade-guns Italy Exports of "Arms and ammunition; parts and accessories thereof" taking place between January 2010 and December 2020.
Trade-cereals Italy Exports of "cereals" taking place between January 2010 and December 2020.
Other Three networks of various types. Specifically: Brain The functional brain network extracted from the EEG β band activity recorded in several Regions of Interest (ROIs) during a motor task 54 . E-mails The network of e-mail exchanges between members of the US Democratic Party during the 2016 Democratic National Committee 55,56 . US domestic flights The network of domestic flights operated within the USA taking place between January 1990 and December 2021 (see Supplementary Note S4 of the SM for the details). Table 1 presents a summary of the main properties of the above networks.

Data availability
The data and code used to generate the US domestic flights and commtrade networks are available at: https:// cardi llo. web. bifi. es/ data. html# fligh ts and https:// cardi llo. web. bifi. es/ data. html# trade. All the other data used in this study are publicly available (see Table 1 for the bibliographic sources).